﻿using System;
using System.Collections.Generic;
using System.Text;
using reactiveBT.Utilities;

namespace reactiveBT.BT
{
    /// <summary>
    /// 叶节点
    /// 函数执行，只接受单一无参函数作为参数
    /// Tick返回值为Success，若执行函数为null，则返回Failure
    /// 基础函数调用已经测试
    /// </summary>
    //目前只实现基础函数调用的节点，协程调用等待后续补全
    public class Action : BTNode
    {
        System.Action<int> fn;
        public Action(System.Action<int> fn)
        {
            this.fn = fn;
        }
        public override BTState Tick(int BTid)
        {
            if (fn != null)
            {
                fn(BTid);
                return BTState.Success;
            }
            return BTState.Failure;
        }

    }
}
